package com.sqfw.project.wp.mapper;

import java.util.List;

import com.sqfw.project.wp.domain.WpInfo;
import com.sqfw.project.wp.domain.WpVisitInfo;
import com.sqfw.project.wpReport.domain.dto.VisitCountDTO;
import org.springframework.stereotype.Component;

/**
 * 回访管理Mapper接口
 *
 * @author lx
 * @date 2023-06-15
 */
@Component
public interface WpVisitInfoMapper
{
    /**
     * 查询回访管理
     *
     * @param scid 回访管理主键
     * @return 回访管理
     */
    public WpVisitInfo selectWpVisitInfoByScid(String scid);

    /**
     * 查询回访管理列表
     *
     * @param wpVisitInfo 回访管理
     * @return 回访管理集合
     */
    public List<WpVisitInfo> selectWpVisitInfoList(WpVisitInfo wpVisitInfo);

    /**
     * 新增回访管理
     *
     * @param wpVisitInfo 回访管理
     * @return 结果
     */
    public int insertWpVisitInfo(WpVisitInfo wpVisitInfo);

    /**
     * 修改回访管理
     *
     * @param wpVisitInfo 回访管理
     * @return 结果
     */
    public int updateWpVisitInfo(WpVisitInfo wpVisitInfo);

    /**
     * 删除回访管理
     *
     * @param scid 回访管理主键
     * @return 结果
     */
    public int deleteWpVisitInfoByScid(String scid);

    /**
     * 批量删除回访管理
     *
     * @param scids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWpVisitInfoByScids(String[] scids);

    public WpVisitInfo selectWpVisitInfoByWpid(String wpid);

    public Integer getWpVisitInfoList(WpVisitInfo wpVisitInfo);



    public List<VisitCountDTO> countWpVisitInfoGroupByIssatisfiedReason(WpVisitInfo wpVisitInfo);

    public List<WpInfo> selectWpVisitInfoWpids(WpInfo wpInfo);

    public List<VisitCountDTO> countWpVisitInfoGroupByIssatisfiedOnExamine(WpVisitInfo visitInfo);

    public List<String> selectVisitSucessCount(WpVisitInfo wpVisitInfo);

    Integer countWpVisitInfoGroupByVisitWorkNo(WpVisitInfo visitInfo);

    Integer countWpVisitInfoGroupByVisitWorkNo2(WpVisitInfo visitInfo);

    List<String> selectDistentVisitWpid(WpVisitInfo visitInfo);

    Integer selectCountDistentVisitWpid(WpVisitInfo wpVisitInfo);

    List<String> selectDistentQualityVisitWpid(WpVisitInfo wpVisitInfo);

    Integer selectCountDistentStatisVisitWpid(WpVisitInfo wpVisitInfo);

    List<WpVisitInfo> selectWpVisitInfoByWpidsAndVisitTimeASC(List<String> wpids);

    Integer selectCountDistentVisitWpid2(WpVisitInfo wpVisitInfo);

    Integer getWpVisitInfoList2(WpVisitInfo wpVisitInfo);

    List<String> selectVisitByFlowTime(WpVisitInfo visitInfo);
}
